Apache POI এর মাধ্যমে Microsoft Word (DOCX) ডকুমেন্টে template management এবং reusability পরিচালনা করা সম্ভব। Template management হলো ডকুমেন্টে পূর্বনির্ধারিত কন্টেন্ট, স্টাইল, এবং ফরম্যাটের ব্যবহার, যা পুনরায় বিভিন্ন পরিস্থিতিতে ব্যবহৃত হতে পারে। এটি ডকুমেন্ট তৈরির প্রক্রিয়াকে দ্রুত এবং কার্যকর করে।
এখানে আমরা দেখবো কিভাবে Word templates তৈরি করা যায় এবং কিভাবে তা পুনঃব্যবহারযোগ্য (reusable) করা যায় বিভিন্ন ডকুমেন্টের মধ্যে।
Word Templates (ডকুমেন্ট টেমপ্লেট) সাধারণত এমন ডকুমেন্ট হয়, যা পূর্বনির্ধারিত কন্টেন্ট, স্টাইল, এবং ফরম্যাট ধারণ করে। Apache POI ব্যবহার করে আপনি সহজেই একটি template তৈরি করতে পারেন এবং তারপর সেটিকে প্রয়োজন অনুসারে customize করতে পারেন।
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import java.io.FileOutputStream;
import java.io.IOException;
public class TemplateExample {
public static void main(String[] args) throws IOException {
// একটি নতুন Word ডকুমেন্ট তৈরি করা
XWPFDocument document = new XWPFDocument();
// একটি প্যারাগ্রাফ তৈরি করা (টেমপ্লেটের জন্য স্টাইল সেট করা)
XWPFParagraph paragraph = document.createParagraph();
paragraph.setStyle("Heading1"); // টেমপ্লেটের জন্য হেডিং স্টাইল ব্যবহার করা
// প্যারাগ্রাফের মধ্যে টেক্সট যোগ করা
XWPFRun run = paragraph.createRun();
run.setText("টেমপ্লেটের শিরোনাম");
// টেমপ্লেটের শরীর (Body) তৈরি করা
XWPFParagraph bodyParagraph = document.createParagraph();
XWPFRun bodyRun = bodyParagraph.createRun();
bodyRun.setText("এটি একটি টেমপ্লেটের শরীরের কন্টেন্ট।");
// Word ডকুমেন্ট সেভ করা
try (FileOutputStream out = new FileOutputStream("TemplateExample.docx")) {
document.write(out);
}
System.out.println("Template created successfully!");
}
}
ডকুমেন্টের টেমপ্লেট তৈরি করার পর, আপনি সেই টেমপ্লেটের মধ্যে কিছু জায়গায় dynamic data (যেমন, নাম, তারিখ, ঠিকানা ইত্যাদি) সন্নিবেশ করতে পারেন। এটি ডকুমেন্টের পুনঃব্যবহারযোগ্যতা এবং কাস্টমাইজেশন সহজ করে।
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import java.io.FileOutputStream;
import java.io.IOException;
public class TemplateWithDynamicData {
public static void main(String[] args) throws IOException {
// ডাইনামিক ডেটা
String recipientName = "John Doe";
String currentDate = "2024-12-17";
// একটি নতুন Word ডকুমেন্ট তৈরি করা
XWPFDocument document = new XWPFDocument();
// প্যারাগ্রাফ তৈরি করা এবং ডাইনামিক ডেটা যোগ করা
XWPFParagraph paragraph = document.createParagraph();
XWPFRun run = paragraph.createRun();
run.setText("প্রিয় " + recipientName + ",");
// পরবর্তী প্যারাগ্রাফে ডাইনামিক ডেটা ব্যবহার করা
XWPFParagraph bodyParagraph = document.createParagraph();
XWPFRun bodyRun = bodyParagraph.createRun();
bodyRun.setText("আপনাকে জানানো হচ্ছে যে, আজকের তারিখ: " + currentDate);
// Word ডকুমেন্ট সেভ করা
try (FileOutputStream out = new FileOutputStream("TemplateWithDynamicData.docx")) {
document.write(out);
}
System.out.println("Template with dynamic data created successfully!");
}
}
Reusable templates তৈরি করতে, একটি টেমপ্লেট ফাইল তৈরি করে সেটি বিভিন্ন প্রোজেক্টে বা ডকুমেন্টে ব্যবহার করা যেতে পারে। এর জন্য আপনি Apache POI দিয়ে একবার একটি template তৈরি করে সেটিকে পরে বিভিন্ন ডাইনামিক ডেটা দিয়ে পরিবর্তন (modify) করতে পারবেন।
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class ReusableTemplateExample {
public static void main(String[] args) throws IOException {
// পূর্বে তৈরি করা টেমপ্লেট ফাইল থেকে ডকুমেন্ট লোড করা
FileInputStream templateFile = new FileInputStream("TemplateExample.docx");
XWPFDocument document = new XWPFDocument(templateFile);
// ডাইনামিক ডেটা
String recipientName = "Jane Smith";
String currentDate = "2024-12-18";
// টেমপ্লেটের প্রথম প্যারাগ্রাফে ডেটা সাবস্টিটিউট করা
XWPFParagraph paragraph = document.getParagraphArray(0);
XWPFRun run = paragraph.getRuns().get(0);
run.setText("প্রিয় " + recipientName + ",");
// টেমপ্লেটের দ্বিতীয় প্যারাগ্রাফে ডেটা সাবস্টিটিউট করা
XWPFParagraph bodyParagraph = document.getParagraphArray(1);
XWPFRun bodyRun = bodyParagraph.getRuns().get(0);
bodyRun.setText("আপনাকে জানানো হচ্ছে যে, আজকের তারিখ: " + currentDate);
// পরিবর্তিত ডকুমেন্ট সেভ করা
try (FileOutputStream out = new FileOutputStream("ReusableTemplateExample.docx")) {
document.write(out);
}
System.out.println("Reusable template updated successfully!");
}
}
Apache POI এর মাধ্যমে template management এবং reusability কার্যকরভাবে পরিচালনা করা যায়। আপনি একবার একটি Word template তৈরি করে সেটিকে বিভিন্ন ডাইনামিক ডেটা দিয়ে কাস্টমাইজ এবং পুনরায় ব্যবহার করতে পারেন। এটি ডকুমেন্ট তৈরির সময় অনেকটা স্বয়ংক্রিয়তা এবং কার্যকারিতা যোগ করে, বিশেষ করে যখন একাধিক ডকুমেন্ট একই ধরনের কাঠামো এবং ফরম্যাট ধারণ করে।
common.read_more